package com.ruoyi.students.mapper;

import com.ruoyi.education.domain.Score;
import com.ruoyi.students.domain.Students;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 学生基本信息管理Mapper接口
 * 
 * @author yxy
 * @date 2024-10-17
 */
@Mapper
public interface StudentsMapper 
{
    /**
     * 查询学生基本信息管理
     * 
     * @param id 学生基本信息管理主键
     * @return 学生基本信息管理
     */
    public Students selectStudentsById(Long id);

    /**
     * 查询学生基本信息管理列表
     * 
     * @param students 学生基本信息管理
     * @return 学生基本信息管理集合
     */
    public List<Students> selectStudentsList(Students students);

    /**
     * 新增学生基本信息管理
     * 
     * @param students 学生基本信息管理
     * @return 结果
     */
    public int insertStudents(Students students);

    /**
     * 修改学生基本信息管理
     * 
     * @param students 学生基本信息管理
     * @return 结果
     */
    public int updateStudents(Students students);

    /**
     * 删除学生基本信息管理
     * 
     * @param id 学生基本信息管理主键
     * @return 结果
     */
    public int deleteStudentsById(Long id);

    /**
     * 批量删除学生基本信息管理
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStudentsByIds(Long[] ids);

    /**
     * 根据学生id和评价时间找学生成绩
     */
    List<Score> selectScoresByStudentId(@Param("studentId") String studentId, @Param("evaluationDate") String evaluationDate);

    /**
     * 根据年级学校id找学生
     */
    List<Students> findStudentsByGradeAndSchool(@Param("grade") String grade, @Param("schoolId") String schoolId);

    /**
     * 学生登录
     */
    Students studentloginInfo(@Param("studentId") String studentId);

    /**
     * 根据学生id查找学生信息
     */
    Students selectStudentsByStudentId(String studentId);

    /**
     * 根据学生id修改学生信息
     */
    int updateStudentsByStudentid(Students students);

    /**
     * 查找班级名称
     * @param studentId
     * @return
     */
    String selectStudentClassName(String studentId);

    String selectStudentName(String studentId);

    int batchInsertscoreRequests(List<Students> studentsList);

}
